//设置单个医院数据类型的约束
export interface HospitalItemType {
  id: string; //医院id
  createTime: string; // 创建时间
  param: {
    hostypeString: string; // 医院等级
    fullAddress: string; // 医院完整地址
  };
  hoscode: string; // 医院编码
  hosname: string; // 医院名称
  hostype: string; // 医院类型标识
  provinceCode: string; // 省编码
  cityCode: string; // 市编码
  districtCode: string; // 区编码
  logoData: string; // 医院logo
  intro: string; // 医院介绍
  route: string; // 交通方式
  status: Status; // 状态：0：未上线 1：已上线
  bookingRule: { // 预约规则信息
    cycle: number; // 预约周期
    releaseTime: string; // 放号时间
    stopTime: string; // 停挂时间
    quitTime: string; // 退号时间
    rule: string[]; // 预约规则
}
}
//设置医院状态的类型
export type Status = 0 | 1; //状态：0：未上线 1：已上线

//设置医院列表的类型（起别名）
export type HospitalListType = HospitalItemType[];

//设置医院列表参数的类型
export interface ReqGetHospitalListParams {
  page: number; // 当前页码
  limit: number; // 每页条数
  hoscode?: string; // 医院编码
  hosname?: string; // 医院名称
  hostype?: string; // 医院类型
  provinceCode?: string; // 省编码
  cityCode?: string; // 市编码
  districtCode?: string; // 区编码
  status?: Status; // 状态：0：未上线 1：已上线
}

// 设置医院列表返回值类型 （响应体的数据接口）
export interface ReqGetHospitalListResponse {
  content:HospitalListType,
  last: boolean,  //是否是最后一页
  first: boolean, //是否是第一页
  totalPages: number,  //总页码数
  totalElements: number,  // 医院总数
  size: number,  //每页数量
  empty: boolean  // 是否为空
}

//医院搜索单个省/市/区数据的类型 响应接口
export interface ProvinceItem {
   id: number,
   createTime: string,
   updateTime: string,
   isDeleted: number,
   parentId: number,
   name: string,
   value: string,
   hasChildren: boolean,
}

// 省市区数据列表
export type  ProvinceList = ProvinceItem[];

// 单独定义，预约规则信息类型
export interface BookingRuleType {
  cycle: number; // 预约周期
  releaseTime: string; // 放号时间
  stopTime: string; // 停挂时间
  quitTime: string; // 退号时间
  rule: string[]; // 预约规则
}

// 单独定义，单个医院类型(不包含预约规则信息)
export interface HospitalType {
  id: string;  //医院id
  createTime: string; // 创建时间
  param: {
    hostypeString: string; // 医院类型
    fullAddress: string; // 医院完整地址
  };
  hoscode: string; // 医院编码
  hosname: string; // 医院名称
  hostype: string; // 医院类型标识
  provinceCode: string; // 省编码
  cityCode: string; // 市编码
  districtCode: string; // 区编码
  logoData: string; // 医院logo
  intro: string; // 医院介绍
  route: string; // 交通方式
  status: Status; // 状态：0：未上线 1：已上线
}

// 设置单个医院类型
export interface HospitalItemType extends HospitalType {
  bookingRule:BookingRuleType;
}

// 设置医院详情的类型
export interface HospitalShowType {
  bookingRule:BookingRuleType;//预约规则的类型约束
  hospital:HospitalType;
}
